//! FastMCP Rust prototype entry point.
//!
//! The crate exposes the [`FastMcpServer`] type together with registries for tools,
//! resources, and prompts. It also includes an HTTP transport built on `axum`.

pub mod command;
pub mod error;
pub mod http;
pub mod prompt;
pub mod resource;
pub mod server;
pub mod stdio;
pub mod tool;
pub mod macros;

pub use crate::command::{CommandResult, ServerCommand, execute_command};
pub use crate::error::{FastMcpError, Result};
pub use crate::http::{HttpServerHandle, start_http};
pub use crate::prompt::{PromptDefinitionMetadata, PromptManager, PromptMessage, PromptTemplate};
pub use crate::resource::{ResourceContent, ResourceDefinition, ResourceManager};
pub use crate::server::{FastMcpServer, FastMcpServerBuilder, ServerMetadata};
pub use crate::stdio::{run_stdio, run_stdio_with_io};
pub use crate::tool::{
    InvocationContext, ToolAnnotations, ToolDefinition, ToolInvocation, ToolManager, ToolResponse,
};
#[cfg(feature = "auto-register")]
pub use crate::tool::{ToolFactory, MCP_TOOL_FACTORIES, register_discovered_tools};

// 为属性宏提供一个不与声明式宏冲突的别名，统一入口为 fastmcp_rs
pub use fastmcp_rs_macros::mcp_tool as mcp_tool_attr;
